package com.hch.service;

import com.hch.domain.Type;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface TypeService {

    /**
     * 新增分类
     *
     * @param type
     * @return
     */
    Type saveType(Type type);

    /**
     * 根据id获取分类
     *
     * @param id
     * @return
     */
    Type getType(Long id);

    /**
     * 根据分类名查询是否已有记录
     * @param name
     * @return
     */
    Type getTypeByName(String name);

    /**
     * 分页查询
     *
     * @param pageable
     * @return
     */
    Page<Type> listType(Pageable pageable);

    /**
     * 返回所有的分类数据
     * @return
     */
    List<Type> listType();

    /**
     * 获取每个分类对应博客数目的方法
     * @param size
     * @return
     */
    List<Type> listTypeTop(Integer size);

    /**
     * 修改分类并且要传递修改后的type
     * @param id
     * @param type
     * @return
     */
    Type updateType(Long id, Type type);

    /**
     * 删除type
     * @param id
     */
    void deleteType(Long id);

}
